function drag(obj) {
	obj.onmousedown = function(e) {
		var e = e || window.event;

		// 鼠标点击物体那一刻相对于物体左侧边框的距离=点击时的位置相对于浏览器最左边的距离-物体左边框相对于浏览器最左边的距离，纵向同理
		var elementX = e.clientX - this.offsetLeft;
		var elementY = e.clientY - this.offsetTop;

		// 修复低版本 IE bug
		if (obj.setCapture) {
			obj.setCapture();
		}

		document.onmousemove = function(e) {
			var e = e || window.event;
			var dragX = e.clientX - elementX;
			var dragY = e.clientY - elementY;

			// 控制拖拽物体的范围只能在浏览器视窗内，不允许出现滚动条或拖出可视区域
			if (dragX < 0) {
				dragX = 0;
			} else if (dragX > document.documentElement.clientWidth - obj.offsetWidth) {
				dragX = document.documentElement.clientWidth - obj.offsetWidth;
			}

			if (dragY < 0) {
				dragY = 0;
			} else if (dragY > document.documentElement.clientHeight - obj.offsetHeight) {
				dragY = document.documentElement.clientHeight - obj.offsetHeight;
			}

			// 移动时重新得到物体的距离，解决拖动时出现晃动现象  
			obj.style.top = dragY + "px";
			obj.style.left = dragX + "px";

			// 鼠标抬起时不再移动
			document.onmouseup = function() {
				// 预防鼠标弹起来后还会循环（即预防鼠标放上去的时候还会移动）
				document.onmousedown = document.onmousemove = null;

				// 修复低版本 IE bug
				if (obj.releaseCapture) {
					obj.releaseCapture();
				}
			}
		}
	}
}
